// 属性类型注解, 多个键值对之间使用分号分隔(可以省略)
let person: {
  name: string;
  age: number;
}

// 对象赋值, 属性必须按照类型注解中的类型约束赋值, 否则报错
person = {
  name: '小陈',
  age: 20
}


let p1: {
  sayHi: () => void;
}
let p2: {
  sing: (name: string) => void;
}
let p3: {
  sum: (num1: number, num2: number) => number;
}

p1 = {
  sayHi: function () {
    console.log('哎哟 不错哦');
  }
};
p2 = {
  sing: function (name: string) {
    console.log('故事的小黄花', name);
  }
}

p3 = {
  sum: function (num1: number, num2: number) {
    return num1 + num2;
  }
}

// 总结: TS中的对象是结构化的, 在使用对象前, 就可以根据需求, 提前设计好需要的对象结构
console.log(person);

export { }